	.arch armv8-a
	.arch_extension crc
	.arm
	.data
	.global array
	.align 4
	.size array, 440
array:
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.word 0
	.global n
	.align 4
	.size n, 4
n:
	.word 0
	.text
	.global init
	.type init , %function
init:
	push {r4, r5, r6, r7, r8, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #8
.L171:
	str r0, [fp, #-8]
	ldr r10, =1
	str r10, [fp, #-4]
	b .L174
.L174:
	ldr r4, [fp, #-4]
	cmp r4, #0
	ldr r5, [fp, #-8]
	cmp r5, #0
	ldr r6, [fp, #-8]
	cmp r6, #0
	mul r7, r5, r6
	ldr r5, =1
	add r6, r7, r5
	cmp r4, r6
	movle r4, #1
	movge r4, #0
	ble .L175
	b .L191
.L175:
	ldr r4, =0
	ldr r5, =1
	sub r6, r4, r5
	ldr r4, [fp, #-4]
	ldr r5, addr_array0
	mov r7, #4
	mul r8, r4, r7
	add r4, r5, r8
	mov r5, r4
	str r6, [r5]
	ldr r4, [fp, #-4]
	ldr r5, =1
	add r6, r4, r5
	str r6, [fp, #-4]
	b .L174
.L176:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L177:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L178:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L179:
	b .L178
.L181:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L182:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L183:
	b .L182
.L185:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L186:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L187:
	b .L186
.L189:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L190:
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L191:
	b .L176

	.global findfa
	.type findfa , %function
findfa:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L192:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	cmp r10, #0
	ldr r9, addr_array0
	mov r8, #4
	mul r7, r10, r8
	add r4, r9, r7
	mov r5, r4
	ldr r4, [r5]
	ldr r5, [fp, #-4]
	cmp r5, #0
	cmp r4, r5
	beq .L194
	b .L208
.L194:
	ldr r4, [fp, #-4]
	mov r0, r4
	add sp, sp, #4
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
	b .L195
.L195:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
.L196:
	ldr r4, [fp, #-4]
	ldr r5, addr_array0
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	mov r5, r4
	ldr r4, [r5]
	mov r0, r4
	bl findfa
	mov r4, r0
	ldr r5, [fp, #-4]
	ldr r6, addr_array0
	mov r7, #4
	mul r8, r5, r7
	add r5, r6, r8
	mov r6, r5
	str r4, [r6]
	ldr r4, [fp, #-4]
	ldr r5, addr_array0
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	mov r5, r4
	ldr r4, [r5]
	mov r0, r4
	add sp, sp, #4
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
	b .L195
.L198:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
.L199:
	b .L198
.L203:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr
.L204:
	b .L203
.L208:
	b .L196

	.global mmerge
	.type mmerge , %function
mmerge:
	push {r4, r5, r6, r7, r8, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #16
.L211:
	str r0, [fp, #-16]
	str r1, [fp, #-12]
	ldr r10, [fp, #-16]
	mov r0, r10
	bl findfa
	mov r4, r0
	str r4, [fp, #-8]
	ldr r4, [fp, #-12]
	mov r0, r4
	bl findfa
	mov r4, r0
	str r4, [fp, #-4]
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, [fp, #-4]
	cmp r5, #0
	cmp r4, r5
	bne .L216
	b .L228
.L216:
	ldr r4, [fp, #-4]
	ldr r5, [fp, #-8]
	ldr r6, addr_array0
	mov r7, #4
	mul r8, r5, r7
	add r5, r6, r8
	mov r6, r5
	str r4, [r6]
	b .L217
.L217:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L218:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L219:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L220:
	b .L219
.L222:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L223:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L224:
	b .L223
.L226:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L227:
	add sp, sp, #16
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L228:
	b .L217

	.global main
	.type main , %function
main:
	push {r4, r5, r6, r7, r8, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #36
.L229:
	ldr r10, =1
	str r10, [fp, #-36]
	b .L234
.L234:
	ldr r4, [fp, #-36]
	cmp r4, #0
	bne .L235
	b .L239
.L235:
	ldr r4, [fp, #-36]
	ldr r5, =1
	sub r6, r4, r5
	str r6, [fp, #-36]
	ldr r4, =4
	ldr r5, addr_n0
	str r4, [r5]
	ldr r4, =10
	str r4, [fp, #-32]
	ldr r4, =0
	str r4, [fp, #-20]
	ldr r4, =0
	str r4, [fp, #-16]
	ldr r4, addr_n0
	ldr r5, [r4]
	mov r0, r5
	bl init
	ldr r4, addr_n0
	ldr r5, [r4]
	ldr r4, addr_n0
	ldr r6, [r4]
	mul r4, r5, r6
	ldr r5, =1
	add r6, r4, r5
	str r6, [fp, #-12]
	b .L244
.L236:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L239:
	b .L236
.L244:
	ldr r4, [fp, #-20]
	cmp r4, #0
	ldr r5, [fp, #-32]
	cmp r5, #0
	cmp r4, r5
	movlt r4, #1
	movgt r4, #0
	blt .L245
	b .L257
.L245:
	bl getint
	mov r4, r0
	str r4, [fp, #-28]
	bl getint
	mov r4, r0
	str r4, [fp, #-24]
	ldr r4, [fp, #-16]
	cmp r4, #0
	cmp r4, #0
	moveq r4, #1
	movne r4, #0
	cmp r4, #0
	bne .L258
	b .L267
.L246:
	ldr r4, [fp, #-16]
	cmp r4, #0
	cmp r4, #0
	moveq r4, #1
	movne r4, #0
	cmp r4, #0
	bne .L436
	b .L445
.L248:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L249:
	b .L248
.L252:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L253:
	b .L252
.L257:
	b .L246
.L258:
	ldr r4, addr_n0
	ldr r5, [r4]
	ldr r4, [fp, #-28]
	ldr r6, =1
	sub r7, r4, r6
	mul r4, r5, r7
	ldr r5, [fp, #-24]
	add r6, r4, r5
	str r6, [fp, #-8]
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-8]
	ldr r6, addr_array0
	mov r7, #4
	mul r8, r5, r7
	add r5, r6, r8
	mov r6, r5
	str r4, [r6]
	ldr r4, [fp, #-28]
	cmp r4, #0
	cmp r4, #1
	beq .L270
	b .L278
.L259:
	ldr r4, [fp, #-20]
	ldr r5, =1
	add r6, r4, r5
	str r6, [fp, #-20]
	b .L244
.L261:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L262:
	b .L261
.L267:
	b .L259
.L270:
	mov r4, #0
	ldr r5, addr_array0
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	mov r5, r4
	ldr r4, =0
	str r4, [r5]
	ldr r4, [fp, #-8]
	mov r0, r4
	mov r1, #0
	bl mmerge
	b .L271
.L271:
	ldr r4, [fp, #-28]
	cmp r4, #0
	ldr r5, addr_n0
	ldr r6, [r5]
	cmp r6, #0
	cmp r4, r6
	beq .L279
	b .L291
.L273:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L274:
	b .L273
.L278:
	b .L271
.L279:
	ldr r4, [fp, #-12]
	ldr r5, [fp, #-12]
	ldr r6, addr_array0
	mov r7, #4
	mul r8, r5, r7
	add r5, r6, r8
	mov r6, r5
	str r4, [r6]
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-12]
	mov r0, r4
	mov r1, r5
	bl mmerge
	b .L280
.L280:
	ldr r4, [fp, #-24]
	cmp r4, #0
	ldr r5, addr_n0
	ldr r6, [r5]
	cmp r6, #0
	cmp r4, r6
	movlt r4, #1
	movgt r4, #0
	blt .L294
	b .L305
.L282:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
	b .F0
.LTORG
addr_array0:
	.word array
addr_n0:
	.word n
.F0:
.L283:
	b .L282
.L286:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L287:
	b .L286
.L291:
	b .L280
.L292:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-8]
	ldr r6, =1
	add r7, r5, r6
	mov r0, r4
	mov r1, r7
	bl mmerge
	b .L293
.L293:
	ldr r4, [fp, #-24]
	cmp r4, #0
	cmp r4, #1
	movgt r4, #1
	movlt r4, #0
	bgt .L320
	b .L327
.L294:
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, =1
	add r6, r4, r5
	ldr r4, addr_array1
	mov r5, #4
	mul r7, r6, r5
	add r5, r4, r7
	mov r4, r5
	ldr r5, [r4]
	ldr r4, =0
	ldr r6, =1
	sub r7, r4, r6
	cmp r7, #0
	cmp r5, r7
	bne .L292
	b .L317
.L296:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L297:
	b .L296
.L300:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L301:
	b .L300
.L305:
	b .L293
.L307:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L308:
	b .L307
.L312:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L313:
	b .L312
.L317:
	b .L293
.L318:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-8]
	ldr r6, =1
	sub r7, r5, r6
	mov r0, r4
	mov r1, r7
	bl mmerge
	b .L319
.L319:
	ldr r4, [fp, #-28]
	cmp r4, #0
	ldr r5, addr_n1
	ldr r6, [r5]
	cmp r6, #0
	cmp r4, r6
	movlt r4, #1
	movgt r4, #0
	blt .L342
	b .L353
.L320:
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, =1
	sub r6, r4, r5
	ldr r4, addr_array1
	mov r5, #4
	mul r7, r6, r5
	add r5, r4, r7
	mov r4, r5
	ldr r5, [r4]
	ldr r4, =0
	ldr r6, =1
	sub r7, r4, r6
	cmp r7, #0
	cmp r5, r7
	bne .L318
	b .L339
.L322:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L323:
	b .L322
.L327:
	b .L319
.L329:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L330:
	b .L329
.L334:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L335:
	b .L334
.L339:
	b .L319
.L340:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-8]
	ldr r6, addr_n1
	ldr r7, [r6]
	add r6, r5, r7
	mov r0, r4
	mov r1, r6
	bl mmerge
	b .L341
.L341:
	ldr r4, [fp, #-28]
	cmp r4, #0
	cmp r4, #1
	movgt r4, #1
	movlt r4, #0
	bgt .L372
	b .L379
.L342:
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, addr_n1
	ldr r6, [r5]
	cmp r6, #0
	add r5, r4, r6
	ldr r4, addr_array1
	mov r6, #4
	mul r7, r5, r6
	add r5, r4, r7
	mov r4, r5
	ldr r5, [r4]
	ldr r4, =0
	ldr r6, =1
	sub r7, r4, r6
	cmp r7, #0
	cmp r5, r7
	bne .L340
	b .L369
.L344:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L345:
	b .L344
.L348:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L349:
	b .L348
.L353:
	b .L341
.L355:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L356:
	b .L355
.L359:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L360:
	b .L359
.L364:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L365:
	b .L364
	b .F1
.LTORG
addr_array1:
	.word array
addr_n1:
	.word n
.F1:
.L369:
	b .L341
.L370:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-8]
	ldr r6, addr_n2
	ldr r7, [r6]
	sub r6, r5, r7
	mov r0, r4
	mov r1, r6
	bl mmerge
	b .L371
.L371:
	mov r4, #0
	ldr r5, addr_array2
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	mov r5, r4
	ldr r4, [r5]
	ldr r5, =0
	ldr r6, =1
	sub r7, r5, r6
	cmp r7, #0
	cmp r4, r7
	bne .L399
	b .L407
.L372:
	ldr r4, [fp, #-8]
	cmp r4, #0
	ldr r5, addr_n2
	ldr r6, [r5]
	cmp r6, #0
	sub r5, r4, r6
	ldr r4, addr_array2
	mov r6, #4
	mul r7, r5, r6
	add r5, r4, r7
	mov r4, r5
	ldr r5, [r4]
	ldr r4, =0
	ldr r6, =1
	sub r7, r4, r6
	cmp r7, #0
	cmp r5, r7
	bne .L370
	b .L395
.L374:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L375:
	b .L374
.L379:
	b .L371
.L381:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L382:
	b .L381
.L385:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L386:
	b .L385
.L390:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L391:
	b .L390
.L395:
	b .L371
.L396:
	ldr r4, =1
	str r4, [fp, #-16]
	ldr r4, [fp, #-20]
	ldr r5, =1
	add r6, r4, r5
	str r6, [fp, #-4]
	ldr r4, [fp, #-4]
	mov r0, r4
	bl putint
	mov r0, #10
	bl putch
	b .L397
.L397:
	b .L259
.L398:
	mov r0, #0
	bl findfa
	mov r4, r0
	cmp r4, #0
	ldr r5, [fp, #-12]
	cmp r5, #0
	mov r0, r5
	bl findfa
	mov r5, r0
	cmp r5, #0
	cmp r4, r5
	beq .L396
	b .L434
.L399:
	ldr r4, [fp, #-12]
	cmp r4, #0
	ldr r5, addr_array2
	mov r7, #4
	mul r6, r4, r7
	add r4, r5, r6
	mov r5, r4
	ldr r4, [r5]
	ldr r5, =0
	ldr r6, =1
	sub r7, r5, r6
	cmp r7, #0
	cmp r4, r7
	bne .L398
	b .L419
.L402:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L403:
	b .L402
.L407:
	b .L397
.L409:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L410:
	b .L409
.L414:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L415:
	b .L414
.L419:
	b .L397
.L421:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L422:
	b .L421
.L425:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L426:
	b .L425
.L429:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L430:
	b .L429
.L434:
	b .L397
.L436:
	ldr r4, =0
	ldr r5, =1
	sub r6, r4, r5
	mov r0, r6
	bl putint
	mov r0, #10
	bl putch
	b .L437
.L437:
	b .L234
.L439:
	mov r0, #0
	add sp, sp, #36
	pop {r4, r5, r6, r7, r8, r10, fp, lr}
	bx lr
.L440:
	b .L439
.L445:
	b .L437

addr_array2:
	.word array
addr_n2:
	.word n
